<!DOCTYPE HTML>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="svg-image-util.css" />
  <script src="svg-image-util.js"></script>
</head>
<body style="height: 600px"><!-- height for pct vals to resolve against -->
  <script>
      var svgParams = {
        viewBox:  null,   // This gets set on a case-by-case basis below.
        width  :  "20px",
        height :  "20%",
        meetOrSlice: null // This means "use pAR=none"
      };

      // Descriptions below describe the behavior of the rows of <img> elements
      // in the corresponding test cases, which we mimic with specially-crafted
      // <embed> elements.

      // * FIRST TWO ROWS: <img> has width=auto height=auto
      //  - Each <img> renders w/ height = 150px (default)
      //  - Synthesized viewBox has height = 20% * viewport_height = .2*150 = 30
      //  - <img> & viewBox both get width=20px, from <svg> width attr
      svgParams.viewBox = [0, 0, 20, 30],
      appendSVGSubArrayWithParams(svgParams, "embed", "20px", "150px");

      // * SECOND TWO ROWS: <img> has width=auto, height=20px
      //  - <img> now renders w/ height = 20px (imposed by <img> height attr)
      //  - Synthesized viewBox has height = 20% * viewport_width = .2*20 = 4
      //  - <img> & viewBox both get width=20px, from <svg> width attr
      svgParams.viewBox = [0, 0, 20, 4],
      appendSVGSubArrayWithParams(svgParams, "embed", "20px", "20px");

      // * THIRD TWO ROWS: <img> has width=30px height=auto
      // Calculations are as with "FIRST TWO ROWS", except <img> now imposes
      // width="30px".
      svgParams.viewBox = [0, 0, 20, 30],
      appendSVGSubArrayWithParams(svgParams, "embed", "30px", "150px");

      // * FOURTH TWO ROWS: <img> has width=30px height=20px
      // Calculations are as with "SECOND TWO ROWS", except <img> now imposes
      // width="30px".
      svgParams.viewBox = [0, 0, 20, 4],
      appendSVGSubArrayWithParams(svgParams, "embed", "30px", "20px");

  </script>
  <!-- Body gets populated by script -->
</body>
</html>
